<!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>FE-interviews</title>
        
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/markdown.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/highlight.css">
        
        <style>
.task-list-item { list-style-type: none; } .task-list-item-checkbox { margin-left: -20px; vertical-align: middle; }
</style>
        <style>
            body {
                font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', 'Ubuntu', 'Droid Sans', sans-serif;
                font-size: 14px;
                line-height: 1.3;
            }
        </style>
        
        
    </head>
    <body class="vscode-light">
        <h2 id="fe-interviews">FE-interviews</h2>
<h3 id="%e9%9d%a2%e8%af%95%e6%8c%87%e5%8d%97%e7%b3%bb%e5%88%97%e6%96%87%e7%ab%a0">面试指南系列文章</h3>
<h4 id="%e5%86%99%e5%9c%a8%e5%89%8d%e9%9d%a2">写在前面</h4>
<h5 id="%e4%bb%8e%e4%ba%8b%e5%a4%9a%e5%b9%b4%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e8%b6%8a%e5%8f%91%e6%84%9f%e8%a7%89%e5%89%8d%e7%ab%af%e7%9f%a5%e8%af%86%e6%9b%b4%e6%96%b0%e7%9a%84%e8%bf%85%e7%8c%9b%e7%89%b9%e6%80%bb%e7%bb%93%e4%bb%a5%e4%b8%8b%e5%b8%b8%e8%80%83%e7%9a%84%e9%ab%98%e9%a2%91%e9%9d%a2%e8%af%95%e9%a2%98%e4%b8%80%e6%96%b9%e9%9d%a2%e7%94%a8%e4%ba%8e%e8%87%aa%e5%b7%b1%e6%80%bb%e7%bb%93%e5%b7%a9%e5%9b%ba%e5%8f%a6%e4%b8%80%e6%96%b9%e9%9d%a2%e5%b8%8c%e6%9c%9b%e5%b8%ae%e5%88%b0%e5%a4%a7%e5%ae%b6">从事多年前端开发，越发感觉前端知识更新的迅猛，特总结以下常考的高频面试题，一方面用于自己总结巩固；另一方面希望帮到大家。</h5>
<h4 id="js-%e9%9d%a2%e8%af%95%e7%b3%bb%e5%88%a9%e7%9b%ae%e5%bd%95">JS 面试系利目录：</h4>
<ul class="contains-task-list">
<li class="task-list-item">
<p><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/1.md">JS 数据类型相关的 15 道面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">1.JS 有哪些原始数据类型？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">2.除了上述数据类型还有哪些？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">3.值类型与引用类型有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">4.如何判断上述数据类型？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">5.Undefined 与 Null 有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">6.如何判断空对象？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">7.如何判断对象是否有某个属性？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">8.数组都有哪些常用的方法？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/1.md#">9.map()与 forEach()有什么相同处，什么不同处？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/1.md#">10.slice()与 splice()有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/1.md#">11.简述 reduce()的使用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">12.普通函数与构造函数有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">13.Set、Map 是什么？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="/docs/1.md#">14.Set、Map 与 WeakSet、WeakMap 有什么不同？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/1.md">15.类型隐式转换有哪些？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">JS 模块化、组件化、工程化相关的 16 道面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">1.什么是模块化？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">2.简述模块化的发展历程？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">3.AMD、CMD、CommonJS、ES6 模块化的区别，以及如何使用？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">4.它们是如何使用的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">5.export 是什么？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">6.module.export、export 与 export defalut 有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">7.什么是组件化？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">8.组件化的原则是什么？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">9.全局组件与局部组件的区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">10.如何注册一个全局组件，并使用它？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">11.局部组件又是如何注册并使用的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">12.如何封装一个高复用的 Vue 前端组件？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">13.什么是工程化思想？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">14.工程化可以解决什么问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">15.是如何处理这些问题的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> <a href="./docs/2.md">16.工程化需要注意哪些问题？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">对象相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">1.如何定义一个对象？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">2.使用 Object.defineProperty(),与普通的赋值定义有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">3.简述对象的遍历方法</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">4.解释 Object 的继承、原型以及原型链</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">5.实现对象的浅拷贝与深拷贝</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/3.md">6.对象的 keys()、valuesOf()、toString()、toObjString()以及 JSON.stringify()有什么区别？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">数组相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">1.什么是类数组?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">2.常见的类数组数据有哪些?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">3.类数组如何转换为数组?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">4.数组使用 for 循环、for-of 分别遍历有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">5.如何分别使用 for 循环、for-of 遍历同一个数组输出不同结果？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">6.类数组如何转换为数组?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">7.类数组如何转换为数组?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">8.手写数组去重的几种实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">9.如何将多维数组转换为一维数组？手写几种实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">10.如何实现一个动态长度的数组？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/5.md">11.分别介绍 filter(),map(),forEach(),sort(),reduce(),some(),every()的使用以及区别</a></li>
</ul>
</li>
</ul>
<ul class="contains-task-list">
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/4.md">JS 作用域与 this 相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/4.md">bind 与 apply 的实现以及具体应用</a></li>
</ul>
</li>
</ul>
<ul class="contains-task-list">
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">数据请求相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">1.原生 ajax 的实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">2.什么是 Promise?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">3.手写 Promise 的实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">4.实现 Promise 的 ajax、Promise.all()、Promise.race()</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">5.使用过 axios 吗？简述常用几种 axios 请求方式？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">6.axios 的拦截器的具体应用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">7.简述 Async 与 Await 的原理，以及具体使用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">8.了解 Generator 吗？简述其原理以及基本应用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">9.如何解决跨域问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/6.md">10.项目中的数据请求 API 是如何设计与管理的？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">ES6 相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">1.具体使用过哪些 ES6 新特性？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">2.var、let 与 const 有什么不同？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">3.Symbol 是什么，具体如何使用?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">4.什么是迭代器？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">5.Iterator 的遍历与 for 循环遍历还有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">6.递归与迭代有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/7.md">7.什么是 Generator?</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/8.md">web 鉴权相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/8.md">1.常用的几种鉴权方式？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/8.md">2.简述微信的 OAuth 2.0</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/8.md">3.简述微信网页鉴权原理，以及具体实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/8.md">4.什么是单点登陆，如何实现单点登陆？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/8.md">5.你们的项目，使用了怎么样的登陆鉴权机制？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/9.md">缓存类相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/9.md">1.简述几种浏览器的缓存，以及基本应用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/9.md">2.简述 cookie 在项目中的应用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/9.md">3.为什么一般使用 token 而不是使用 cookie？</a></li>
</ul>
</li>
</ul>
<ul class="contains-task-list">
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">Vue 相关的 25 道面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">1.为什么 v-if 与 v-show 有什么不同？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">2.Vue 的响应式原理</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">3.Vue 的数据绑定</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">4.为什么 Vue 的 data 是一个函数而不是一个对象？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">5.data 与 props 有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">6.Vue 中的父子组件如何传递数据与事件通信？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">7.使用过 Vue 中 render 函数吗？使用 render 与使用 templete 模板有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">8.render 中可以直接使用 return createElement();重复创建 VNode 吗？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">9.如何解决上述 render 重复创建 VNode 的问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">10.通过 render 创建 input,可以直接使用 v-model 绑定其 value 吗？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">11.如何解决通过 render 创建 input,可以使用 v-model 绑定其 value 的问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">12.直接为 Vue 实例 vm,赋值添加属性，请问该属性是响应式的吗？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">13.如何在 Vue 中使用插件?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">14.如何在 Vue 中使用过滤器?</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">15.使用过 Vue 中的自定义指令吗?简述它的具体使用</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">16.介绍 Virtual DOM,与真实的 DOM 有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">17.Vue 的 Virtual DOM 是如何实现的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">18.Vue2.0 与 Vue3.0 有什么不同？简述其不同之处</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">19.简述 flux 原理</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">20.项目中的数据是如何管理的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">21.Vuex 的原理什么？如何实现一个简单的 store 模式</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">22.项目中如何使用 Vuex</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">23.Vue-router 有哪些 api,如何在项目中使用 Vue-router 以及相关配置？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">24 在项目中,是如何组织路由管理的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/10.md">25.Vue-router 的 hash 模式与 history 模式是什么?两者的区别？如何分别使用两种模式？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">webpack 相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">1.常用的打包工具？简述 webpack 的原理，以及基本配置</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">2.如何解决本地开发调试的跨域请求问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">3.如何解决 webpack 打包慢问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">4.常用的 webpack loader 有哪些？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">5.常用的 webpack plugins 有哪些？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">6.webpack 的 loader 与 plugins 有什么区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">7.如何使用 Webpack 配置多 html 入口,简述其具体配置过程？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/11.md">8.Webpack 使用过程中，遇到什么问题？是如何解决的？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/12.md">NodeJS 相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/12.md">1.实现一个 node 中间件</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/12.md">2.express 源码读过吗？express 的具体代码实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/12.md">3.介绍 koa 原理，手写 koa 最小服务</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/13.md">前端优化相关</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/13.md">1.如何优化项目？具体有哪些策略？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/13.md">2.什么是 ssr 与 csr?如何实现 ssr？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/14.md">JS 设计模式相关面试题？</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/14.md">1.使用过设计模式吗？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/14.md">2.常用的设计模式有哪些？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/14.md">3.简述工厂模式与建造者模式的区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/14.md">4.如何实现单例模式？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/15.md">源码解读相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/15.md">1.阅读过 JQuery 源码吗？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/15.md">2.JQuery 主要使用了哪些设计模式？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/15.md">3.了解 UnderScore 吗？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/15.md">4.UnderScore 是如何设计的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/15.md">5.使用过 Loadsh 吗？是否解读过它的源码实现？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">函数式编程相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">1.简述什么是函数式编程？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">2.什么是纯函数？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">3.什么是柯里化？手写柯里化函数的实现</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">4.函数式编程有哪些核心应用？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">5.简述什么是高阶函数？举例说明</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">6.常用的高阶函数有哪些？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">7.什么是尾递归？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">8.手写尾递归的实现</a>）</li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">9.尾递归的优点？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/16.md">10.简述递归与尾递归的区别？举例说明</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">小程序相关面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">1.简述 web 与小程序的区别？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">2.小程序的登陆如何设计，以及具体实现？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">3.如何解决多产品项目中的用户体系一致问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">4.小程序的页面适配是如何解决的？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">5.使用过哪些常用的小程序 API</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">6.数据请求如何设计？简述其实现流程？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">7.处理过哪些小程序相关难题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">8.如何实现产品中的多入口问题（按钮配置、图文小程序入口进入、直接进入、分享进入、小程序码进入...）？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">9.小程序的审核需要注意哪些问题？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/17.md">10.如何解决上述问题？</a></li>
</ul>
</li>
<li class="task-list-item">
<p><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">其他面试题</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">1.web 端的权限，技术如何实现？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">2.什么是防抖与节流？</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">3.手写防抖与节流函数</a></li>
<li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> <a href="./docs/18.md">4.如何消除魔术字符串现象？</a></li>
</ul>
</li>
</ul>
<blockquote>
<p>上述面试题：</p>
<p>原文文档按序在 ./docs/ 下面；</p>
<p>原文代码在./codes/ 下，如有需要，欢迎 fork,下载；</p>
<p>欢迎关注我 <a href="https://github.com/wumingwei/FE-interviews">github</a> ，辛苦小手送个 star 吧！🙂😊😊</p>
</blockquote>
<h3 id="%e5%be%ae%e4%bf%a1%e5%85%ac%e4%bc%97%e5%8f%b7%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e9%82%a3%e4%ba%9b%e4%ba%8b%e5%84%bf%e6%ac%a2%e8%bf%8e%e5%85%b3%e6%b3%a8">微信公众号：前端开发那些事儿，欢迎关注！</h3>
<p><img src="https://s1.ax1x.com/2020/03/30/GnwTeI.gif" alt="微信开发那些事儿"></p>

    </body>
    </html>